home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 November: Tool Chest / Dev.CD Nov 98 TC.toast / Sample Code / Snippets / Files / GetFInfo / Source / PBHGetFInfo.c
Encoding:
Text File  |  1996-09-17  |  3.1 KB  |  99 lines  |  [TEXT/CWIE]

  1. //
  2. // MPW Tool
  3. // Usage : PBHGetFInfo [-i index] [-f fileName] [-v vRefNum] [-x version]
  4. // 
  5.  
  6. #include    <Files.h>
  7. #include    <stdio.h>
  8. #include    <StdLib.h>
  9. #include    <string.h>
  10. #include    <strings.h>
  11. #include    <Quickdraw.h>
  12.  
  13. HParamBlockRec    pb;
  14. Str255            fileName;
  15.  
  16. void main (int argc, char *argv[]) {
  17.     
  18.         auto    OSErr    osErr;
  19.         auto    short    index;
  20.         auto    char    *option, *parameter;
  21.         
  22.         InitGraf(&qd.thePort);
  23.  
  24.         pb.fileParam.ioNamePtr        = fileName;
  25.         pb.fileParam.ioVRefNum        = 0;
  26.         pb.fileParam.ioFDirIndex    = 0;
  27.  
  28.         index = 1;
  29.         while (index < argc) {
  30.         
  31.             option = argv[index++];
  32.             parameter = argv[index++];
  33.             
  34.             if ('-' != option[0] || (! strchr("idfrx", option[1])) || index > argc) {
  35.                 printf("PBHGetFInfo [-i index] [-d dirID] [-f fileName] [-v vRefNum] [-x version]");
  36.                 exit(1);
  37.             } else {
  38.                 switch (option[1]) {
  39.                     case 'i' :
  40.                         sscanf(parameter, "%hd", &pb.fileParam.ioFDirIndex);
  41.                         break;
  42.                     case 'd' :
  43.                         sscanf(parameter, "%ld", &pb.fileParam.ioDirID);
  44.                         break;
  45.                     case 'f' :
  46.                         parameter = (char *) c2pstr(parameter);
  47.                         pb.fileParam.ioNamePtr = (StringPtr)parameter;
  48.                         break;
  49.                     case 'v' :
  50.                         sscanf(parameter, "%hd", &pb.fileParam.ioVRefNum);
  51.                         break;
  52.                     case 'x' :
  53.                         sscanf(parameter, "%hd", &pb.fileParam.ioFVersNum);
  54.                         break;
  55.                 }
  56.             }            
  57.         }
  58.         
  59.     //    printf("ioFDirIndex        = %hd\n",     pb.fileParam.ioFDirIndex);
  60.     //    printf("ioDirID            = %ld\n",     pb.fileParam.ioDirID);
  61.     //    printf("ioNamePtr        = %P\n",    pb.fileParam.ioNamePtr);
  62.     //    printf("ioVRefNum        = %hd\n",     pb.fileParam.ioVRefNum);
  63.     //    printf("ioFVersNum        = %hd\n",     pb.fileParam.ioFVersNum);
  64.         
  65.         osErr = PBHGetFInfoAsync(&pb);
  66.         
  67.         if (noErr != osErr) {
  68.             printf("osErr            = %d\n",    osErr);
  69.         } else {
  70.             printf("ioResult        = %hd\n",    pb.fileParam.ioResult);
  71.             printf("ioNamePtr        = %P\n",    pb.fileParam.ioNamePtr);
  72.             printf("ioVRefNum        = %hd\n",     pb.fileParam.ioVRefNum);
  73.             
  74.             printf("ioFRefNum        = %hd\n",     pb.fileParam.ioFRefNum);
  75.             printf("ioFVersNum        = %hd\n",     (short)pb.fileParam.ioFVersNum);
  76.             printf("ioFDirIndex        = %hd\n",     pb.fileParam.ioFDirIndex);
  77.             printf("ioFlAttrib        = %hd\n",     (short)pb.fileParam.ioFlAttrib);
  78.             printf("ioFlVersNum        = %hd\n",     (short)pb.fileParam.ioFlVersNum);
  79.             
  80.             printf("ioFlFndrInfo.\n");
  81.             printf(" fdType            = %c%c%c%c\n",     pb.fileParam.ioFlFndrInfo.fdType);
  82.             printf(" fdCreator        = %c%c%c%c\n",     pb.fileParam.ioFlFndrInfo.fdCreator);
  83.             printf(" fdFlags        = %hu\n",     pb.fileParam.ioFlFndrInfo.fdFlags);
  84.             printf(" fdLocation.h    = %hd\n",     pb.fileParam.ioFlFndrInfo.fdLocation.h);
  85.             printf(" fdLocation.v    = %hd\n",     pb.fileParam.ioFlFndrInfo.fdLocation.v);
  86.             printf(" fdFldr            = %hd\n",     pb.fileParam.ioFlFndrInfo.fdFldr);
  87.             
  88.             printf("ioDirID            = %ld\n",     pb.fileParam.ioDirID);
  89.             printf("ioFlStBlk        = %hu\n",     pb.fileParam.ioFlStBlk);
  90.             printf("ioFlLgLen        = %ld\n",     pb.fileParam.ioFlLgLen);
  91.             printf("ioFlPyLen        = %ld\n",     pb.fileParam.ioFlPyLen);
  92.             printf("ioFlRStBlk        = %hu\n",     pb.fileParam.ioFlRStBlk);
  93.             printf("ioFlRLgLen        = %ld\n",     pb.fileParam.ioFlRLgLen);
  94.             printf("ioFRPyLen        = %ld\n",     pb.fileParam.ioFlRPyLen);
  95.             printf("ioFlCrDat        = %lu\n",     pb.fileParam.ioFlCrDat);
  96.             printf("ioFlMdDat        = %lu\n",     pb.fileParam.ioFlMdDat);
  97.         }
  98. }
  99.